package controllers;

import models.Spurningar;
import models.Svor;
import models.Syslur;
import models.User;
import play.data.Form;
import play.mvc.Controller;
import play.mvc.Result;
import views.html.login;

import java.util.List;

/**
 * Created with IntelliJ IDEA.
 * User: bjornth
 * Date: 21.2.2013
 * Time: 14:31
 * To change this template use File | Settings | File Templates.
 */
public class AccountController extends Controller {

    public static class Login {

        public String name;
        public String password;

        //public String validate() {
        //    if (User.authenticate(name, password) == null) {
        //        return "Invalid user or password";
        //    }
        //    return null;
        //}
    }

    public static void createUsers(){
        User user = new User("tum", "tum", 1);
        User user1 = new User("tum1", "tum1", 0);
        User user2 = new User("tum2", "tum2", 0);
        user.save();
        user1.save();
        user2.save();


    }
    public static void createGame(){
        Spurningar sp = new Spurningar(1, "Hvað er gnýr?");
        Spurningar sp1 = new Spurningar(2, "Hvað er mjaldur?");
        Spurningar sp2 = new Spurningar(3, "Hvað er sækýr");
        sp.save();
        sp1.save();
        sp2.save();
        Svor svar1 = new Svor("naut", true, 1);
        Svor svar2 = new Svor("fugl", false, 1);
        Svor svar3 = new Svor("fiskur", false, 1);
        Svor svar4 = new Svor("maður", false, 1);
        svar1.save();
        svar2.save();
        svar3.save();
        svar4.save();
        Svor svar5 = new Svor("hvalur", true, 2);
        Svor svar6 = new Svor("hestur", false, 2);
        Svor svar7 = new Svor("Hrokinn maður", false, 2);
        Svor svar8 = new Svor("fiðrildi", false, 2);
        svar5.save();
        svar6.save();
        svar7.save();
        svar8.save();
        Svor svar9 = new Svor("seildýr", true, 3);
        Svor svar10 = new Svor("kýr", false, 3);
        Svor svar11 = new Svor("Hvalur", false, 3);
        Svor svar12 = new Svor("flóðhestur", false, 3);
        svar9.save();
        svar10.save();
        svar11.save();
        svar12.save();
        Syslur s = new Syslur("Árnessýsla", "arn");
        Syslur s1 = new Syslur("Norður Ísafjarðarsýsla", "nis");
        Syslur s2 = new Syslur("Norður Þingeyjasýsla", "nting");
        Syslur s3 = new Syslur("Vestur Ísafjarðarsýsla", "vis");
        Syslur s4 = new Syslur("strandasýsla", "strand");
        Syslur s5 = new Syslur("suður þingeyjasýsla", "sting");
        Syslur s6 = new Syslur("skagafjarðarsýsla", "skag");
        Syslur s7 = new Syslur("norður múlasýsla", "nmul");
        Syslur s8 = new Syslur("austur húnavatnssýsla", "ahun");
        Syslur s9 = new Syslur("eyjafjarðarsýsla", "eyja");
        Syslur s10 = new Syslur("vestur Barðarstrandasýsla", "vbar");
        Syslur s11 = new Syslur("austur Barðarstrandasýsla", "abar");
        Syslur s12 = new Syslur("vestur húnavatnssýsla", "vhun");
        Syslur s13 = new Syslur("dalasýsla", "dala");
        Syslur s14 = new Syslur("suður múlasýsla", "smul");
        Syslur s15 = new Syslur("snæfellsnessýsla", "snae");
        Syslur s16 = new Syslur("mýrarsýsla", "myra");
        Syslur s17 = new Syslur("rangárvallasýsla", "rang");
        Syslur s18 = new Syslur("borgarfjarðarsýsla", "borg");
        Syslur s19 = new Syslur("austur skaftafellssýsla", "askaft");
        Syslur s20 = new Syslur("kjósasýsla", "kjos");
        Syslur s21 = new Syslur("vestur skaftafellsýsla", "vskaft");
        Syslur s22 = new Syslur("gullbringusýsla", "gull");
        Syslur s23 = new Syslur("austur skaftafellssýsla", "askaft");
        s.save();
        s1.save();
        s2.save();
        s3.save();
        s4.save();
        s5.save();
        s6.save();
        s7.save();
        s8.save();
        s9.save();
        s10.save();
        s11.save();
        s12.save();
        s13.save();
        s14.save();
        s15.save();
        s16.save();
        s17.save();
        s18.save();
        s19.save();
        s20.save();
        s21.save();
        s22.save();
        s23.save();

    }

    final static Form<Login> userForm = form(Login.class);
    public static Result login() {
        List<User> us = User.find.all();
        if(us.isEmpty())
        {
            createUsers();
        }
        List<Spurningar> s = Spurningar.find.all();
        if(s.isEmpty())
        {
            createGame();
        }
        return ok(login.render(userForm));
    }

    public static Result logout(){
        session().clear();
        flash("success", "Thou hast been logged out!");
        return redirect(routes.AccountController.login());
    }

    public static Result authenticate(){
        Form<Login> filledForm = form(Login.class).bindFromRequest();

        if (filledForm.hasErrors()) {
            return badRequest(login.render(filledForm));
        } else {
            System.out.println(filledForm.get().name);
            System.out.println(filledForm.get().password);
            session().clear();
            session("name", filledForm.get().name);
            return redirect(routes.Application.index());

        }
    }


}
